import { HttpRequestConfig } from "luch-request";
import { defHttp, Api } from "../index";

/**文件上传 */
export async function apiUploadFile(
  data: ApiUploadFile.Req
): Promise<Api.Res<ApiUploadFile.Res>> {
  const res = await defHttp.upload<Api.Res<ApiUploadFile.Res>>(
    "/sysFile/uploadFile",
    data
  );
  return res;
}

/**文件上传 */
export namespace ApiUploadFile {
  export interface Req extends HttpRequestConfig<UniApp.UploadTask> {
    formData?: {
      FileType?: string;
      IsPublic?: string;
      Path?: string;
      SavePath?: string;
      AllowSuffix?: string;
    };
  }
  export interface Res {
    /**
     * 所属Id（如主对象）
     */
    belongId: number;
    /**
     * 仓储名称
     */
    bucketName: string;
    /**
     * 创建者部门Id
     */
    createOrgId: number;
    /**
     * 创建者部门名称
     */
    createOrgName: string;
    /**
     * 创建时间
     */
    createTime: Date;
    /**
     * 创建者Id
     */
    createUserId: number;
    /**
     * 创建者姓名
     */
    createUserName: string;
    /**
     * 文件MD5
     */
    fileMd5: string;
    /**
     * 文件名称（源文件名）
     */
    fileName: string;
    /**
     * 存储路径
     */
    filePath: string;
    /**
     * 文件类别
     */
    fileType: string;
    /**
     * 雪花Id
     */
    id: number;
    /**
     * 软删除
     */
    isDelete: boolean;
    /**
     * 是否公开
     * 若为true则所有人都可以查看，默认只有自己或有权限的可以查看
     */
    isPublic: boolean;
    /**
     * 提供者
     */
    provider: string;
    /**
     * 关联对象Id
     */
    relationId: number;
    /**
     * 关联对象名称（如子对象）
     */
    relationName: string;
    /**
     * 文件大小信息-计算后的
     */
    sizeInfo: string;
    /**
     * 文件大小KB
     */
    sizeKb: number;
    /**
     * 文件后缀
     */
    suffix: string;
    /**
     * 租户Id
     */
    tenantId: number;
    /**
     * 更新时间
     */
    updateTime: Date;
    /**
     * 修改者Id
     */
    updateUserId: number;
    /**
     * 修改者姓名
     */
    updateUserName: string;
    /**
     * 外链地址-OSS上传后生成外链地址方便前端预览
     */
    url: string;
  }
}
